package Day_0201.JUC;

/**
 * @author zxc
 * @date 2023/02/01 23:09
 **/
public class Multithreading_Context_switching {
    public static void main(String[] args) {
        /**
         * 多线程的上下文切换
         * ===》
         * 1.
         * 在上下文切换过程中，CPU会停止处理当前运行的程序，并保存当前程序运行的具体位置以便之后继续运行。
         * 从这个角度来看，上下文切换有点像我们同时阅读几本书，在来回切换书本的同时我们需要记住每本书当前读到的页码。
         * ===》
         * 即，在上下文切换过程中，CPU会停止运行当前程序，同时保存程序运行的状态信息;
         *
         * 2.在程序中，上下文切换过程中的“页码”信息是保存在进程控制块（PCB）中的。
         * PCB还经常被称作“切换桢”（switchframe）。
         * “页码”信息会一直保存到CPU的内存中，直到他们被再次使用。
         *
         * 3.上下文切换是存储和恢复CPU状态的过程，它使得线程执行能够从中断点恢复执行。
         * 上下文切换是多任务操作系统和多线程环境的基本特征。
         *
         * ===>
         * 总结 ：
         * （1）多线程的上下文切换，即保存当前线程的运行状态信息，同时去恢复所要运行线程之前的运行状态;
         * （2）上下文切换过程中，所保存线程的运行状态信息，是保存在进程控制块(PCB,又被成为“切换帧”)中的;
         */
    }
}
